package com.inei.evaluacionemype.model.dao;

import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.inei.evaluacionemype.model.connection.UtilDB;
import com.inei.evaluacionemype.model.entity.Cap04;

public class Cap04Dao implements ICRUD<Cap04> {

	// variables
	private UtilDB util;
	private SQLiteDatabase db;
	private Cursor cursor = null;

	// constructor
	public Cap04Dao(Context context) {
		util = new UtilDB(context);
	}

	// metodos CRUD
	@Override
	public Cap04 buscar(Cap04 o) {
		Cap04 obj = null;
		db = util.getReadableDatabase();

		cursor = db.rawQuery("select * from Cap04 where RUC=?",
				new String[] { o.getRUC() + "" });
		if (cursor.moveToFirst()) {
			obj = new Cap04();
			obj.setRUC(cursor.getString(cursor.getColumnIndex("RUC")));
			obj.setC4AP1_INFRA_COMPU(cursor.getInt(cursor
					.getColumnIndex("C4AP1_INFRA_COMPU")));
			obj.setC4AP1_INFRA_COMPU_CANT(cursor.getInt(cursor
					.getColumnIndex("C4AP1_INFRA_COMPU_CANT")));
			obj.setC4AP1_INFRA_TELF_FIJA(cursor.getInt(cursor
					.getColumnIndex("C4AP1_INFRA_TELF_FIJA")));
			obj.setC4AP1_INFRA_TELF_FIJA_CANT(cursor.getInt(cursor
					.getColumnIndex("C4AP1_INFRA_TELF_FIJA_CANT")));
			obj.setC4AP1_INFRA_TELF_MOVIL(cursor.getInt(cursor
					.getColumnIndex("C4AP1_INFRA_TELF_MOVIL")));
			obj.setC4AP1_INFRA_TELF_MOVIL_CANT(cursor.getInt(cursor
					.getColumnIndex("C4AP1_INFRA_TELF_MOVIL_CANT")));
			obj.setC4AP1_SERVI_RED(cursor.getInt(cursor
					.getColumnIndex("C4AP1_SERVI_RED")));
			obj.setC4AP1_SERVI_RED_CANT(cursor.getInt(cursor
					.getColumnIndex("C4AP1_SERVI_RED_CANT")));
			obj.setC4AP1_SERVI_INTERNET(cursor.getInt(cursor
					.getColumnIndex("C4AP1_SERVI_INTERNET")));
			obj.setC4AP1_SERVI_INTERNET_CANT(cursor.getInt(cursor
					.getColumnIndex("C4AP1_SERVI_INTERNET_CANT")));
			obj.setC4AP1_SERVI_INTRANET(cursor.getInt(cursor
					.getColumnIndex("C4AP1_SERVI_INTRANET")));
			obj.setC4AP1_SERVI_EXTRANET(cursor.getInt(cursor
					.getColumnIndex("C4AP1_SERVI_EXTRANET")));
			obj.setC4AP2_CANT(cursor.getInt(cursor.getColumnIndex("C4AP2_CANT")));
			obj.setC4AP2_TOTAL(cursor.getInt(cursor
					.getColumnIndex("C4AP2_TOTAL")));
			obj.setC4AP3_PORCENTAJE(cursor.getDouble(cursor
					.getColumnIndex("C4AP3_PORCENTAJE")));
			obj.setC4BP4_PORCENTAJE_ACCESO(cursor.getDouble(cursor
					.getColumnIndex("C4BP4_PORCENTAJE_ACCESO")));
			obj.setC4BP5_SITIOWEB(cursor.getInt(cursor
					.getColumnIndex("C4BP5_SITIOWEB")));
			obj.setC4CP6_COMPRA(cursor.getInt(cursor
					.getColumnIndex("C4CP6_COMPRA")));
			obj.setC4CP7_COMPRA_PORCENTAJE(cursor.getDouble(cursor
					.getColumnIndex("C4CP7_COMPRA_PORCENTAJE")));
			obj.setC4CP8_VENDE(cursor.getInt(cursor
					.getColumnIndex("C4CP8_VENDE")));
			obj.setC4CP9_VENDE_PORCENTAJE(cursor.getDouble(cursor
					.getColumnIndex("C4CP9_VENDE_PORCENTAJE")));
			obj.setC4DP10_CONEXIONES(cursor.getInt(cursor
					.getColumnIndex("C4DP10_CONEXIONES")));
			obj.setC4DP11_BANCHA_MODEM(cursor.getInt(cursor
					.getColumnIndex("C4DP11_BANCHA_MODEM")));
			obj.setC4DP11_BANCHA_OTROS(cursor.getInt(cursor
					.getColumnIndex("C4DP11_BANCHA_OTROS")));
			obj.setC4DP11_BANCHA_SATELITAL(cursor.getInt(cursor
					.getColumnIndex("C4DP11_BANCHA_SATELITAL")));
			obj.setC4DP11_BANCHA_INTER_MOVIL(cursor.getInt(cursor
					.getColumnIndex("C4DP11_BANCHA_INTER_MOVIL")));
			obj.setC4DP11_BANGOSTA_MODEM(cursor.getInt(cursor
					.getColumnIndex("C4DP11_BANGOSTA_MODEM")));
			obj.setC4DP11_BANGOSTA_RDSI(cursor.getInt(cursor
					.getColumnIndex("C4DP11_BANGOSTA_RDSI")));
			obj.setC4DP11_BANGOSTA_INTER_MOVIL(cursor.getInt(cursor
					.getColumnIndex("C4DP11_BANGOSTA_INTER_MOVIL")));
			obj.setC4DP11_ESPECIF_OTRO(cursor.getInt(cursor
					.getColumnIndex("C4DP11_ESPECIF_OTRO")));
			obj.setC4DP11_ESPECIFIQUE(cursor.getString(cursor
					.getColumnIndex("C4DP11_ESPECIFIQUE")));
			obj.setC4EP12A_BUSQ_PRODUC(cursor.getInt(cursor
					.getColumnIndex("C4EP12A_BUSQ_PRODUC")));
			obj.setC4EP12A_BUSQ_ORGANIS(cursor.getInt(cursor
					.getColumnIndex("C4EP12A_BUSQ_ORGANIS")));
			obj.setC4EP12A_BUSQ_ACTIVI(cursor.getInt(cursor
					.getColumnIndex("C4EP12A_BUSQ_ACTIVI")));
			obj.setC4EP12A_BUSQ_OTROS(cursor.getInt(cursor
					.getColumnIndex("C4EP12A_BUSQ_OTROS")));
			obj.setC4EP12A_BUSQ_ESPECIF(cursor.getString(cursor
					.getColumnIndex("C4EP12A_BUSQ_ESPECIF")));
			obj.setC4EP12B_COMUNICACIONES(cursor.getInt(cursor
					.getColumnIndex("C4EP12B_COMUNICACIONES")));
			obj.setC4EP12C_OPERACIONES(cursor.getInt(cursor
					.getColumnIndex("C4EP12C_OPERACIONES")));
			obj.setC4EP12D_TRANSACCIONES(cursor.getInt(cursor
					.getColumnIndex("C4EP12D_TRANSACCIONES")));
			obj.setC4EP12E_SERVICIO(cursor.getInt(cursor
					.getColumnIndex("C4EP12E_SERVICIO")));
			obj.setC4EP12F_DISTRIBUIR(cursor.getInt(cursor
					.getColumnIndex("C4EP12F_DISTRIBUIR")));
			obj.setC4EP12G_OTRAS(cursor.getInt(cursor
					.getColumnIndex("C4EP12G_OTRAS")));
			obj.setC4EP12G_ESPECIFIQUE(cursor.getString(cursor
					.getColumnIndex("C4EP12G_ESPECIFIQUE")));
			obj.setC4FP13_SW_PROPIETARIO(cursor.getInt(cursor
					.getColumnIndex("C4FP13_SW_PROPIETARIO")));
			obj.setC4FP14_SW_LIBRE(cursor.getInt(cursor
					.getColumnIndex("C4FP14_SW_LIBRE")));
			obj.setC4FP15_SW_PROPIO(cursor.getInt(cursor
					.getColumnIndex("C4FP15_SW_PROPIO")));
			obj.setC4FP16_EMP_NACIONAL(cursor.getInt(cursor
					.getColumnIndex("C4FP16_EMP_NACIONAL")));
			obj.setC4GP17_CAPACITACION(cursor.getInt(cursor
					.getColumnIndex("C4GP17_CAPACITACION")));
		}

		Cerrar();
		return obj;
	}

	@Override
	public List<Cap04> leer() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public int crear(Cap04 o) {
		int resultado = 0;
		db = util.getWritableDatabase();
		db.beginTransaction();

		ContentValues valores = new ContentValues();
		valores.put("RUC", o.getRUC());
		valores.put("C4AP1_INFRA_COMPU", o.getC4AP1_INFRA_COMPU());
		valores.put("C4AP1_INFRA_COMPU_CANT", o.getC4AP1_INFRA_COMPU_CANT());
		valores.put("C4AP1_INFRA_TELF_FIJA", o.getC4AP1_INFRA_TELF_FIJA());
		valores.put("C4AP1_INFRA_TELF_FIJA_CANT",
				o.getC4AP1_INFRA_TELF_FIJA_CANT());
		valores.put("C4AP1_INFRA_TELF_MOVIL", o.getC4AP1_INFRA_TELF_MOVIL());
		valores.put("C4AP1_INFRA_TELF_MOVIL_CANT",
				o.getC4AP1_INFRA_TELF_MOVIL_CANT());
		valores.put("C4AP1_SERVI_RED", o.getC4AP1_SERVI_RED());
		valores.put("C4AP1_SERVI_RED_CANT", o.getC4AP1_SERVI_RED_CANT());
		valores.put("C4AP1_SERVI_INTERNET", o.getC4AP1_SERVI_INTERNET());
		valores.put("C4AP1_SERVI_INTERNET_CANT",
				o.getC4AP1_SERVI_INTERNET_CANT());
		valores.put("C4AP1_SERVI_INTRANET", o.getC4AP1_SERVI_INTRANET());
		valores.put("C4AP1_SERVI_EXTRANET", o.getC4AP1_SERVI_EXTRANET());
		valores.put("C4AP2_CANT", o.getC4AP2_CANT());
		valores.put("C4AP2_TOTAL", o.getC4AP2_TOTAL());
		valores.put("C4AP3_PORCENTAJE", o.getC4AP3_PORCENTAJE());
		valores.put("C4BP4_PORCENTAJE_ACCESO", o.getC4BP4_PORCENTAJE_ACCESO());
		valores.put("C4BP5_SITIOWEB", o.getC4BP5_SITIOWEB());
		valores.put("C4CP6_COMPRA", o.getC4CP6_COMPRA());
		valores.put("C4CP7_COMPRA_PORCENTAJE", o.getC4CP7_COMPRA_PORCENTAJE());
		valores.put("C4CP8_VENDE", o.getC4CP8_VENDE());
		valores.put("C4CP9_VENDE_PORCENTAJE", o.getC4CP9_VENDE_PORCENTAJE());
		valores.put("C4DP10_CONEXIONES", o.getC4DP10_CONEXIONES());
		valores.put("C4DP11_BANCHA_MODEM", o.getC4DP11_BANCHA_MODEM());
		valores.put("C4DP11_BANCHA_OTROS", o.getC4DP11_BANCHA_OTROS());
		valores.put("C4DP11_BANCHA_SATELITAL", o.getC4DP11_BANCHA_SATELITAL());
		valores.put("C4DP11_BANCHA_INTER_MOVIL",
				o.getC4DP11_BANCHA_INTER_MOVIL());
		valores.put("C4DP11_BANGOSTA_MODEM", o.getC4DP11_BANGOSTA_MODEM());
		valores.put("C4DP11_BANGOSTA_RDSI", o.getC4DP11_BANGOSTA_RDSI());
		valores.put("C4DP11_BANGOSTA_INTER_MOVIL",
				o.getC4DP11_BANGOSTA_INTER_MOVIL());
		valores.put("C4DP11_ESPECIF_OTRO", o.getC4DP11_ESPECIF_OTRO());
		valores.put("C4DP11_ESPECIFIQUE", o.getC4DP11_ESPECIFIQUE());
		valores.put("C4EP12A_BUSQ_PRODUC", o.getC4EP12A_BUSQ_PRODUC());
		valores.put("C4EP12A_BUSQ_ORGANIS", o.getC4EP12A_BUSQ_ORGANIS());
		valores.put("C4EP12A_BUSQ_ACTIVI", o.getC4EP12A_BUSQ_ACTIVI());
		valores.put("C4EP12A_BUSQ_OTROS", o.getC4EP12A_BUSQ_OTROS());
		valores.put("C4EP12A_BUSQ_ESPECIF", o.getC4EP12A_BUSQ_ESPECIF());
		valores.put("C4EP12B_COMUNICACIONES", o.getC4EP12B_COMUNICACIONES());
		valores.put("C4EP12C_OPERACIONES", o.getC4EP12C_OPERACIONES());
		valores.put("C4EP12D_TRANSACCIONES", o.getC4EP12D_TRANSACCIONES());
		valores.put("C4EP12E_SERVICIO", o.getC4EP12E_SERVICIO());
		valores.put("C4EP12F_DISTRIBUIR", o.getC4EP12F_DISTRIBUIR());
		valores.put("C4EP12G_OTRAS", o.getC4EP12G_OTRAS());
		valores.put("C4EP12G_ESPECIFIQUE", o.getC4EP12G_ESPECIFIQUE());
		valores.put("C4FP13_SW_PROPIETARIO", o.getC4FP13_SW_PROPIETARIO());
		valores.put("C4FP14_SW_LIBRE", o.getC4FP14_SW_LIBRE());
		valores.put("C4FP15_SW_PROPIO", o.getC4FP15_SW_PROPIO());
		valores.put("C4FP16_EMP_NACIONAL", o.getC4FP16_EMP_NACIONAL());
		valores.put("C4GP17_CAPACITACION", o.getC4GP17_CAPACITACION());

		resultado = (int) db.insert("Cap04", null, valores);
		if (resultado > 0) {
			db.setTransactionSuccessful();
		}

		valores.clear();
		Cerrar();
		return resultado;
	}

	@Override
	public int eliminar(Cap04 o) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int actualizar(Cap04 o) {
		int resultado = 0;
		db = util.getWritableDatabase();
		db.beginTransaction();

		ContentValues valores = new ContentValues();
		valores.put("RUC", o.getRUC());
		valores.put("C4AP1_INFRA_COMPU", o.getC4AP1_INFRA_COMPU());
		valores.put("C4AP1_INFRA_COMPU_CANT", o.getC4AP1_INFRA_COMPU_CANT());
		valores.put("C4AP1_INFRA_TELF_FIJA", o.getC4AP1_INFRA_TELF_FIJA());
		valores.put("C4AP1_INFRA_TELF_FIJA_CANT",
				o.getC4AP1_INFRA_TELF_FIJA_CANT());
		valores.put("C4AP1_INFRA_TELF_MOVIL", o.getC4AP1_INFRA_TELF_MOVIL());
		valores.put("C4AP1_INFRA_TELF_MOVIL_CANT",
				o.getC4AP1_INFRA_TELF_MOVIL_CANT());
		valores.put("C4AP1_SERVI_RED", o.getC4AP1_SERVI_RED());
		valores.put("C4AP1_SERVI_RED_CANT", o.getC4AP1_SERVI_RED_CANT());
		valores.put("C4AP1_SERVI_INTERNET", o.getC4AP1_SERVI_INTERNET());
		valores.put("C4AP1_SERVI_INTERNET_CANT",
				o.getC4AP1_SERVI_INTERNET_CANT());
		valores.put("C4AP1_SERVI_INTRANET", o.getC4AP1_SERVI_INTRANET());
		valores.put("C4AP1_SERVI_EXTRANET", o.getC4AP1_SERVI_EXTRANET());
		valores.put("C4AP2_CANT", o.getC4AP2_CANT());
		valores.put("C4AP2_TOTAL", o.getC4AP2_TOTAL());
		valores.put("C4AP3_PORCENTAJE", o.getC4AP3_PORCENTAJE());
		valores.put("C4BP4_PORCENTAJE_ACCESO", o.getC4BP4_PORCENTAJE_ACCESO());
		valores.put("C4BP5_SITIOWEB", o.getC4BP5_SITIOWEB());
		valores.put("C4CP6_COMPRA", o.getC4CP6_COMPRA());
		valores.put("C4CP7_COMPRA_PORCENTAJE", o.getC4CP7_COMPRA_PORCENTAJE());
		valores.put("C4CP8_VENDE", o.getC4CP8_VENDE());
		valores.put("C4CP9_VENDE_PORCENTAJE", o.getC4CP9_VENDE_PORCENTAJE());
		valores.put("C4DP10_CONEXIONES", o.getC4DP10_CONEXIONES());
		valores.put("C4DP11_BANCHA_MODEM", o.getC4DP11_BANCHA_MODEM());
		valores.put("C4DP11_BANCHA_OTROS", o.getC4DP11_BANCHA_OTROS());
		valores.put("C4DP11_BANCHA_SATELITAL", o.getC4DP11_BANCHA_SATELITAL());
		valores.put("C4DP11_BANCHA_INTER_MOVIL",
				o.getC4DP11_BANCHA_INTER_MOVIL());
		valores.put("C4DP11_BANGOSTA_MODEM", o.getC4DP11_BANGOSTA_MODEM());
		valores.put("C4DP11_BANGOSTA_RDSI", o.getC4DP11_BANGOSTA_RDSI());
		valores.put("C4DP11_BANGOSTA_INTER_MOVIL",
				o.getC4DP11_BANGOSTA_INTER_MOVIL());
		valores.put("C4DP11_ESPECIF_OTRO", o.getC4DP11_ESPECIF_OTRO());
		valores.put("C4DP11_ESPECIFIQUE", o.getC4DP11_ESPECIFIQUE());
		valores.put("C4EP12A_BUSQ_PRODUC", o.getC4EP12A_BUSQ_PRODUC());
		valores.put("C4EP12A_BUSQ_ORGANIS", o.getC4EP12A_BUSQ_ORGANIS());
		valores.put("C4EP12A_BUSQ_ACTIVI", o.getC4EP12A_BUSQ_ACTIVI());
		valores.put("C4EP12A_BUSQ_OTROS", o.getC4EP12A_BUSQ_OTROS());
		valores.put("C4EP12A_BUSQ_ESPECIF", o.getC4EP12A_BUSQ_ESPECIF());
		valores.put("C4EP12B_COMUNICACIONES", o.getC4EP12B_COMUNICACIONES());
		valores.put("C4EP12C_OPERACIONES", o.getC4EP12C_OPERACIONES());
		valores.put("C4EP12D_TRANSACCIONES", o.getC4EP12D_TRANSACCIONES());
		valores.put("C4EP12E_SERVICIO", o.getC4EP12E_SERVICIO());
		valores.put("C4EP12F_DISTRIBUIR", o.getC4EP12F_DISTRIBUIR());
		valores.put("C4EP12G_OTRAS", o.getC4EP12G_OTRAS());
		valores.put("C4EP12G_ESPECIFIQUE", o.getC4EP12G_ESPECIFIQUE());
		valores.put("C4FP13_SW_PROPIETARIO", o.getC4FP13_SW_PROPIETARIO());
		valores.put("C4FP14_SW_LIBRE", o.getC4FP14_SW_LIBRE());
		valores.put("C4FP15_SW_PROPIO", o.getC4FP15_SW_PROPIO());
		valores.put("C4FP16_EMP_NACIONAL", o.getC4FP16_EMP_NACIONAL());
		valores.put("C4GP17_CAPACITACION", o.getC4GP17_CAPACITACION());

		resultado = (int) db.update("Cap04", valores, "RUC=?",
				new String[] { o.getRUC() + "" });
		if (resultado > 0) {
			db.setTransactionSuccessful();
		}

		valores.clear();
		Cerrar();
		return resultado;
	}

	private void Cerrar() {
		if (cursor != null) {
			cursor.close();
		}
		if (db.inTransaction()) {
			db.endTransaction();
		}
		if (db.isOpen()) {
			db.close();
		}
	}
}
